package com.terry.test3;

import java.util.*;

/**
 * 【解密犯罪时间】
 *
 * 警察在侦破一个案件时，得到了线人给出的可能犯罪时间，形如 “HH:MM” 表示的时刻。
 *
 * 根据警察和线人的约定，为了隐蔽，该时间是修改过的，
 *
 * 解密规则为：利用当前出现过的数字，构造下一个距离当前时间最近的时刻，则该时间为可能的犯罪时间。
 *
 * 每个出现数字都可以被无限次使用。
 *
 * 输入描述
 *
 * 形如HH:SS字符串，表示原始输入。
 *
 * 输出描述
 *
 * 形如HH:SS的字符串，表示推理处理的犯罪时间。
 *
 * 备注
 *
 * 1.可以保证现任给定的字符串一定是合法的。
 *
 * 例如，“01:35”和“11:08”是合法的，“1:35”和“11:8”是不合法的。
 *
 * 2.最近的时刻可能在第二天。
 *
 * 示例
 *
 * 20:12得到20:20
 *
 * 23:59得到22:22
 *
 * 12:58得到15:11
 *
 * 18:52得到18:55
 *
 * 23:52得到23:53
 *
 * 09:17得到09:19
 *
 * 07:08得到08:00
 *
 * @author 小八
 * @date 2023年02月08日9:15
 */
public class Title2 {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while(in.hasNextLine()){
           String[] lines =  in.nextLine().split(":");
           char[] nums = new char[4];
           for(int i=0;i<lines.length;i++){
               for(int j=0;j<lines[i].length();j++){
                   nums[2*i+j] = lines[i].charAt(j);
               }
           }
           List<Integer> combineList = new ArrayList<>();
           for(int i=0;i<nums.length;i++){
               for(int j=0;j<nums.length;j++){
                  String tempNumStr = nums[i]+""+nums[j];
                  Integer tempNum = Integer.parseInt(tempNumStr);
                  if(!combineList.contains(tempNum)){
                      combineList.add(tempNum);
                  }
               }
           }
           combineList.sort(Comparator.comparingInt(a -> a));
           Integer hourNum = Integer.parseInt(lines[0]);
           Integer desMinutesNum = -1;
           Integer desHourNum = -1;
           Integer minutesNum = Integer.parseInt(lines[1]);
           for(int i=0;i<combineList.size();i++){
               if(minutesNum<combineList.get(i)){
                   if(combineList.get(i)<= 60){
                       desMinutesNum = combineList.get(i);
                       break;
                   }
               }
           }
            for(int i=0;i<combineList.size();i++){
                if(hourNum<combineList.get(i)){
                    if(combineList.get(i)<= 24){
                        desHourNum = combineList.get(i);
                        break;
                    }
                }
            }
            String hourStr;
            String minuteStr;
            if(desMinutesNum != -1){
                hourStr = lines[0];
                minuteStr = desMinutesNum<10?"0"+desMinutesNum:""+desMinutesNum;
           }else{//小时
                minuteStr = combineList.get(0)<10?"0"+combineList.get(0):""+combineList.get(0);

               if(desHourNum == -1){
                   hourStr =  combineList.get(0)<10?"0"+combineList.get(0):""+combineList.get(0);
               }else{
                   hourStr = desHourNum<10?"0"+desHourNum:""+desHourNum;
               }

           }
           System.out.println(hourStr+":"+minuteStr);
        }
        in.close();
    }


}
